/**
 * @author Allen
 * @since 2011-09-10
 * 百科信息数据操作接口
 */
package com.qeado.baike.dao;

import com.qeado.baike.model.Baike;
import com.qeado.baike.model.BaikeRef;
import com.qeado.colleage.model.Colleage;
import com.qeado.user.model.User;
import com.qeado.util.PageHelper;

public interface BaikeDao {
	/**
	 * 分页查询某类别的所有的百科信息
	 * @param pageNum 页码
	 * @param pageSize 每页大小
	 * @param typeCode 词条所属类别
	 * @param orderBy 排序依据
	 * @param asc 升序或降序
	 * @return PageHelper 数据集
	 */
	public PageHelper listAll(int pageNum, int pageSize , String typeCode , String orderBy, String asc); 

	/**
	 * 根据关键字分页查询某类别所有的百科信息
	 * @param pageNum 页码
	 * @param pageSize 每页大小
	 * @param typeCode 词条所属类别
	 * @param orderBy 排序依据
	 * @param asc 升序或降序
	 * @param key 词条关键字
	 * @return PageHelper 数据集
	 */	
	public PageHelper listByKey(int pageNum, int pageSize , String typeCode , String orderBy, String asc, String key);
	
	/**
	 * 根据ID查询词条
	 * @param id 词条ID
	 * @return 词条对象数据
	 */
	public Baike queryById(String id); // 按ID查询
	
	/**
	 * 根据词条名称查询
	 * @param baikeWord 词条名称
	 * @return 百科词条信息
	 */
	public Baike queryByWord(String baikeWord);
	
	/**
	 * 创建新词条
	 * @param baike 百科词条
	 * @return 新创建的ID
	 */
	public String insertBaike(BaikeRef baikeRef); 
	
	/**
	 * 创建新词条
	 * @param baike 新的百科词条
	 * @return 成功为true 失败为false
	 */
	public boolean createBaike(Baike baike);
	
	/**
	 * 按照关键字和排序条件来查询百科词条
	 * @param pageNum 页码
	 * @param pageSize 页大小
	 * @param key 关键字
	 * @param orderBy 排序依据
	 * @param asc 顺序
	 * @return 百科列表
	 */
	public PageHelper listByKey(int pageNum, int pageSize, String key, String orderBy, String asc )  throws Exception;
	
	/**
	 * 根据所属类别查询百科词条
	 * @param pageNum 页码
	 * @param pageSize	页大小
	 * @param typeCode	所属类别
	 * @param orderBy	排序依据
	 * @param asc	顺序
	 * @return	百科列表
	 */
	public PageHelper listBySort(int pageNum, int pageSize, String typeCode, String orderBy, String asc )  throws Exception;
	
	/**
	 * 查询所有的百科词条
	 * @param pageNum	页码
	 * @param pageSize	页大小
	 * @param orderBy	排序条件
	 * @param asc	顺序
	 * @return	百科列表
	 * @throws Exception
	 */
	public PageHelper listAll(int pageNum, int pageSize, String orderBy, String asc) throws Exception;
}
